package com.leyou.search.pojo;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Map;
import java.util.Set;

/**
 * 一个SPU对应一个Goods
 */
@Data                                         //数据分片数    数据备份数
@Document(indexName = "goods", type = "docs", shards = 1, replicas = 1)
public class Goods {
    @Id
    @Field(type = FieldType.Keyword)  //不会被分词，但会建立索引
    private Long id; // spuId
    @Field(type = FieldType.Keyword, index = false)  //不会被分词，也不会建立索引
    private String subTitle;// 卖点，副标题
    @Field(type = FieldType.Keyword, index = false)
    private String skus;// sku信息的json结构  包含skuId、image、price、title字段

    @Field(type = FieldType.Text, analyzer = "ik_max_word")  //会分词并建立索引，指定分词器为 ik_max_word
    private String all; // 所有需要被搜索的信息，包含 商品名称，分类名称，品牌名称
    private Long brandId;// 品牌id
    private Long categoryId;// 商品3级分类id
    private Long createTime;// spu创建时间
    private Set<Long> price;// 价格
    private Map<String, Object> specs;// 可搜索的规格参数，key是参数名，值是参数值
}